package main

import (
	"fmt"
	"time"
)

//演示常用的日期函数

func main() {
	//1. 获取当前时间
	now := time.Now()
	fmt.Printf("now=%v now的type=%T \n ", now, now)

	//2.通过now可以获取到年月日时分秒
	fmt.Println("年=", now.Year())
	fmt.Println("月=", int(now.Month())) //其中Month直接输出为英文，需要转数字
	fmt.Println("日=", now.Day())
	fmt.Println("时=", now.Hour())
	fmt.Println("分=", now.Minute())
	fmt.Println("秒=", now.Second())

	//3. 格式化日期时间 通过Printf或Sprintf
	fmt.Printf("当前时间 : %d-%d-%d %d:%d:%d \n", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())

	dateStr := fmt.Sprintf("当前时间 : %d-%d-%d %d:%d:%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
	fmt.Println(dateStr)

	//4.通过 时间.Format()来格式化时间 Format是个方法 不是函数
	//注意2006-01-02 15:04:05 这几个数字是必须这个值
	//15 换成 03就是 12小时制 其他写一位数字就是1位表示法
	fmt.Println(now.Format("2006年01月02日 15时:04分:05秒"))
	fmt.Println(now.Format("2006年1月2日 下午3时:4分:5秒"))

	//5 时间常量

	fmt.Println(time.Millisecond)

	//每秒输出一个数字，超过3结束
	// var index int = 0
	// for {
	// 	fmt.Println("呵呵" + strconv.Itoa(index))
	// 	time.Sleep(time.Second)
	// 	index++
	// 	if index == 3 {
	// 		break
	// 	}
	// }

	//计算间隔多少秒
	start := time.Now().Unix()
	time.Sleep(time.Second)
	end := time.Now().Unix()
	fmt.Println((end - start)) //计算
}
